Three-dimensional or 3-D video images have been used extensively for various computer applications such as modeling, CAD/CAM systems, simulations (e.g., flight simulation), so-called virtual reality displays, and computer games. A 3-D video image is defined for the purposes of this application as a display representing an object in three dimensions, generally rendered on a two-dimensional display (e.g., CRT or the like) using techniques of perspective to make an object appear in three dimensions. Other types of displays may be utilized to display a 3-D image, such as stereo-optical goggles typically associated with so-called virtual reality displays. Moreover, other types of displays may be provided in the future (e.g., holographic 3-D image projectors) to make a 3-D image appear in space.
A user may alter his perspective or vantage point of an object in a 3-D image and view a 3-D object from another angle. A host computer may then redraw the object as seen from that angle. Such a technique may allow a user to view objects in so-called virtual space from many different angles. For example, for architectural modeling, a viewer may be able to "walk" through a virtual building designed on a computer to view how the interior and exterior may look when constructed.
Such 3-D images may require considerable computing power to generate. In general, the more detailed a 3-D image, the more computing power may be required. Thus, early 3-D image displays were limited to simple line figure or box constructions and may have provided a jerky image motion when perspective is changed by a viewer. Such displays may provide only a limited sensation of realism and thus may be inadequate for simulation of three dimensional objects.
FIG. 1 illustrates a simple line FIG. 3-D image of a wall. The shape and size of the wall may be defined within a computer system as a series of coordinate points (x,y,z) in three dimensional space. A 3-D image of such a wall may be generated from these coordinates and a viewer perspective or position value to generate a 3-D image, such as shown in FIG. 1. As the viewer's perspective is altered, the image may be appropriately redrawn to preserve perspective and give the illusion of movement of the viewer within the field of the image.
The 3-D image of FIG. 1, however, is rather primitive and may not provide a desired level of realism. One approach to improving the realism of such 3-D images is to provide a two dimensional texture map which may be superimposed over a 3-D image to enhance the appearance of realism of the 3-D image. For a given surface of a 3-D image, a two dimensional texture map may be stored as a bitmap in computer memory. When a 3-D image is displayed, three dimensional object data may be used to generate the overall shape of an object as viewed from a particular angle, while the two-dimensional texture map may be use to color the surfaces of the image to enhance realism.
FIGS. 2A and 2B illustrate an example of the use of such texture maps. FIG. 2A illustrates a texture map, which, as an example, is a brick pattern. In this example, the texture map of FIG. 2A is a repetitive pattern and thus only a portion of the overall pattern need be stored as a texture map. Other texture map patterns may not be repetitive, and thus may require storage of an image large enough to cover an entire surface or portion of a 3-D object. FIG. 2B illustrates the texture map of FIG. 2A as applied to the 3-D image or object of FIG. 1. When superimposed with the texture map of FIG. 2A, the 3-D image of FIG. 1 may appear more realistic as a 3-D image on a video display.
FIG. 4 illustrates an apparatus for generating such a 3-D image on a video display. The system of FIG. 4 includes a host CPU 410 (e.g., 486 type processor, Intel.TM. Pentium.TM. processor, Motorola.TM. 68000 processor, IBM.TM. PowerPC.TM. or the like) coupled to a system bus 430 (e.g., ISA, EISA, PCI bus or the like). Host processor 410 may process data received over system bus 430 in accordance with an applications program (e.g., video game, virtual reality program, CAD system, simulator, modeling software or the like). Host processor may receive as an input a viewer command which may be translated into a viewer position or perspective for use in generating a 3-D image corresponding to such perspective.
Also coupled to system bus 430 is a graphics subsystem 420 which may comprise all or a portion of a video controller circuit. Coupled to graphics subsystem 420 is a video memory 440 comprising display memory portion 441 and off-screen memory portion 442. Display memory portion 441 may include image data 443 for storing 3-D image data. Off-screen memory portion 442 may include texture map 444 for superimposing over a 3-D image.
Video display 450 may be coupled to graphics subsystem 420 to display 3-D images. Video display 450 may comprise a CRT, flat panel display, television, or the like. In operation, the system of FIG. 4 may retrieve raw 3-D image data and texture maps from a data source (not shown) such as a hard drive, floppy disk, CD-ROM, flash memory, network, or the like, as is known in the art.
Such raw 3-D image data may be processed by host CPU 410 and stored as 3-D image data 443 in display memory portion 441. In particular, host CPU 410 may process raw 3-D image data to generate a correct perspective 3-D image for a given viewer perspective. Texture map 444 may be processed by graphics subsystem 420 to be superimposed over a 3-D image in correct perspective.
Such an apparatus and technique may be suitable for enhancing the display of inanimate (i.e., unchanging) objects. However, many surfaces in a 3-D display may change over time. In particular, a display of an animate object (e.g., human face) may change with time. A 3-D image generated using a 3-D object superimposed with a texture map may not provide a convincing 3-D image. Moreover, in any 3-D image display, a considerable amount of computing power may be required to generate a convincing realistic display, particularly if considerable detail or motion is provided.